// --------------------------------------------------------------------------------------------------------------------
// <copyright file="GameEvent.cs" company="Roman '4ux-nbIx' Novitsky">
//   Copyright (c) Roman '4ux-nbIx' Novitsky 2010
// </copyright>
// <summary>
//   Defines the GameEvent type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace MtgMC.DataModel
{
    /// <summary>
    /// Describes and manipulates the game event.
    /// </summary>
    public abstract class GameEvent
    {
        #region Properties

        /// <summary>
        /// Gets or sets the deck.
        /// </summary>
        /// <value>
        /// The deck played on the tournament.
        /// </value>
        public Deck Deck
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the location.
        /// </summary>
        /// <value>
        /// The location.
        /// </value>
        public Location Location
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the format.
        /// </summary>
        /// <value>
        /// The format.
        /// </value>
        public MatchFormat MatchFormat
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the type.
        /// </summary>
        /// <value>
        /// The tournament match type.
        /// </value>
        public MatchType MatchType
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the name.
        /// </summary>
        /// <value>
        /// The tournament name.
        /// </value>
        public string Name
        {
            get;
            set;
        }


        /// <summary>
        /// Gets the display name.
        /// </summary>
        /// <value>The display name.</value>
        public virtual string DisplayName
        {
            get
            {
                return Name;
            }
        }

        #endregion
    }
}